/////////////////////////////////////////////////////////////////////////
//
// Amuse Engine SDK - core/memory
// Copyright( c) 2013.  All Rights Reserved
//
// File:		AESysParallelForTask.h
// Author:		Gianluca Belardelli
// Date:		03/04/2014
//
/////////////////////////////////////////////////////////////////////////
#ifndef _AESYSPARALLELFORTASK_H_
#define _AESYSPARALLELFORTASK_H_

class AESysParallelForTask : public AEThreadWorkItem
{
// Members
public:
    AESysTask			*m_lpParentTask;
    void				*m_lpUserData;
    AEUINT32			m_uiStart;
	AEUINT32			m_uiEnd;
	
	volatile AEUINT32	*m_nJobWaitCount;

    AEITaskManager::AEParallelForFunction m_lpfnParallelForFunction;

// Methods
public:
    /// <summary cref="SystemTaskWrapper::Process">
	///	This method calls the <c>Update</c> method of the associated <c>ISystemTask</c>
	/// with some instrumentation to record the time taken for the call.
	/// </summary>
	void Process( void ) {}; // TODO

	AEBOOL32 IsDynamicallyAllocated( void ) { return 1; }
};

#endif // _AESYSPARALLELFORTASK_H_